# 数据类型转换
"""
Python数据类型:
int/float/str/list/tuple/dict/set
"""
# int(x) 如果x为数字,则不能有base参数
print(int(6.1))
# int(x,base) 如果x为string/byte/bytearray类型,则可以传入base参数
# base 参数,将x看做为给定的base类型数,并将其转换成对应的十进制数
# base 默认为 10,即默认为十进制
print(int("1001", 2)) # 转换成对应的十进制数:9
print(int("6")) # base 默认为 10
print(int('FF', 16)) # 转换成对应的十进制数:255
# print(int("7", 2)) # 报错,因为二进制中只有 0 和 1,没有7

print(int("123"))
print(float(123), float("123"))
print(complex(10,2), complex(2,2))
print("十六进制:", hex(10))
print("八进制:", oct(10))
print("二进制:", bin(10))
print("将整数转换为字符:", chr(65))
print("将字符转换为整数:", ord('a'))


print("==== tuple 和 list 的互相转换 ====")
str_value = "hello world"
print(tuple(str_value))
print(list(str_value))

tup = ('hello', 'world')
print("将元组转换为列表:", list(tup))

lis = ['hello', 'world']
print("将列表转换为元组:", tuple(lis))

print("==== 将 list 和 tuple 整合为 dict")
lis = ['name', 'age', 'city']
tup = ('张三', 18, 'WH')
k_list_v_tup = zip(lis, tup)
print(type(k_list_v_tup))
print(dict(k_list_v_tup))

# 判断变量类型:type() / isinstance()
a = 1.2
print(type(a))
# isinstance(),需要明确某个变量的类型,第一个参数是判断的变量,二个参数是变量的类型
# 如果传入的变量与传入的变量类型相匹配,则返回 True,否则返回 False
print(isinstance(a, float))
print(isinstance(a, int))
